Skip to content

Mint directory_user, directory_group, group_membership, license_assignment (0x0B06–0x0B09); flow body 0x1718 - #370

Merged
AdaWorldAPI merged 1 commit into
mainfrom
ccr-7a4f3a52-1mvica
Nov 4, 2026
Merged

AdaWorldAPI merged 1 commit into
mainfrom
ccr-7a4f3a52-1mvica

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

This adds four concepts to the IAM domain of ogar-vocab, placed after email (0x0B05):

id concept meaning
0x0B06 directory_user one directory user as observed (AD / Entra)
0x0B07 directory_group one directory group (security or distribution)
0x0B08 group_membership one user→group membership edge
0x0B09 license_assignment one observed license SKU on one user

These are the concepts that directory reads bind to. OgarRbac grants and field masks on directory data key on them. Each concept gets:

  • a CODEBOOK row,
  • a class_ids const and an entry in class_ids::ALL,
  • a promoted Class builder,
  • a row in the ogar-class-view registry.

The Auth-domain count goes from 5 to 9.

ogar-flow-m365 (PR-FLOW-01, #368) now binds its directory operations to these concepts with ConceptBinding::Minted:

  • query_user, update_user, remove_user → directory_user
  • read_membership, add_group_member → group_membership
  • read_license_evidence, assign_license → license_assignment

It also declares the flow body's concept id, 0x1718, and adds vocab::plug_into so the vocabulary can be registered in a VocabularyRegistry. 0x1718 is a palette slot above blockly-rs's 0x1717, so it stays in the crate. The existing guard no_0x17xx_row_reached_the_globally_mirrored_codebook keeps it out of class_ids::ALL.

The ogar-dir-core dependency is dropped (it was only used for the old DirSchema binding). ogar-vocab moves from a dev-dependency to a normal dependency; it has no dependencies of its own.

Paired PR: merge this one first

The zero-dep mirror rows are in AdaWorldAPI/lance-graph (lance-graph-contract::ogar_codebook, PR linked below). That repo's lance-graph-ogar::assert_codebook_parity checks both directions against OGAR main. Whichever PR merges first, lance-graph's parity step stays red until the other one lands. The lance-graph PR's own check needs this one on main, so the order is: this PR, then the mirror.

Tests

  • ogar-vocab: 175 passed. ogar-class-view: 14 passed. ogar-flow-m365: 31 passed. There are two new tests: every directory operation binds to its minted concept, and the vocabulary plugs into a registry under 0x1718. Changing one binding makes the first test fail.
  • ogar-osm, ogar-adapter-csharp, ogar-adapter-python and ogar-rbac pass.
  • clippy with -D warnings and fmt --all --check are clean.
  • A full cargo test --workspace --no-fail-fast ran locally. The only failures:
    • 37 tests that need a sibling OGIT checkout, which this sandbox doesn't have and CI provides;
    • ogar-r2il::the_table_matches_r2il_s_own_enum (84 vs 82 opcodes). That one fails on main without this change: upstream r2sleigh added two opcodes.

Generated by Claude Code

…hip, license_assignment (0x0B06-0x0B09)

Four IAM-domain concepts above email: a directory user and group as
observed (AD / Entra), one user-to-group membership edge, and one
observed license SKU on one user. They are what directory reads bind to
and what RBAC grants and field masks on directory data key on. Each gets
a promoted Class and an ogar-class-view registry row; the Auth domain
count moves from 5 to 9.

ogar-flow-m365 binds its directory operations to them
(ConceptBinding::Minted) and declares its flow body concept 0x1718, a
palette slot above blockly-rs 0x1717 kept crate-local like every
palette, with vocab::plug_into for VocabularyRegistry.

The lance-graph-contract ogar_codebook mirror rows land in the paired
lance-graph PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XAqKMM44PgMCtYoqx6XYnh
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c776ef00-8b32-49af-b1d2-a6c6787cd2cf
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review November 4, 2026 23:52
@AdaWorldAPI
AdaWorldAPI merged commit acf9c4b into main Nov 4, 2026
4 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-04T23:53:38.162424Z 4444593 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants